مشخصات پروژه
-
1097
-
0.0
-
7634
-
0
-
0
پروژه سی شارپ - برنامه فراخوانی API های ویندوز
برنامه فراخوانی API های ویندوز
برنامه فراخوانی API های ویندوز
(برنامه خاموش کردن و ریستارت سیستم)
یکی از مزایای دسترسی به DLL ها، استفاده از آنان به منظور کارهای سیستمی است. کارهایی همچون خاموش کردن و ریستارت کردن سیستم میتـواند در مواقع ضروری (همچون زمانی که بعد از نصب نرم افزار برای اعمال تغییرات رجیستری نیاز به راه اندازی دوباره سیستم می باشد) مورد استفاده قرار بگیرد.
برای استفاده از این امکانات باید کتابخانه ای از ویندوز که دستورات مربوطه در آن قرار دارند به پروژه اضافه شود:
[DllImport("user32.dll")]
حال قصد داریم یکی از توابع موجود در این کتابخانه به نام ExitWindowsEx را فراخوانی نماییم. بدین منظور لازم است که به مترجم برنامه اعلام نماییم که قصد استفاده از تابعی را داریم که تعریف این تابع در کد ما وجود ندارد بلکه بدنه این تابع در کتابخانه ای که وارد کرده ایم موجود است. بدین منظور از کد زیر استفاده می نماییم:
public static extern int ExitWindowsEx(int uFlags, int dwReason);
حال این تابع قابل استفاده است. ابتدا به توضیحی کوچک در مورد این تابع و پارامترهای آن می پردازیم:
1. پارامتر اول مربوط به تعیین نوع خروج از سیستم عامل است:
· EWX_POWEROFF: خاموش کردن کامل سیستم.
· EWX_REBOOT: راه اندازی مجدد سیستم عامل.
· EWX_DEFER: با استفاده از این کلمه راه اندازی مجدد سیستم به تاخیر می افتد و به زمانی موکول می شود که هیچ درخواست فعالی برای راه اندازی مجدد سیستم نباشد.
· EWX_PROMPT: راه اندازی مجدد سیستم را با اجازه کاربر انجام می دهد.
نکته: دو گزینه آخر باید به صورت منطقی با دو گزینه اول ترکیب شوند و به تنهایی کاری انجام نمی دهند:
ExitWindowsEx(EWX_REBOOT | EWX_DEFER, 0);
نکته: می توان به جای استفاده از این کلمات عدد متناظر آنها را وارد کرد، شروع این شمارنده از صفر می باشد.
2. این پارامتر همیشه صفر می باشد.
اگر این متد با موفقیت انجام گردد خروجی آن عددی غیرصفر می باشد در غیر اینصورت تابع عدد صفر را برمی گرداند.
